Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Rendered • View rawDownload


lang/README.ja.md v4.5.0-rc.1 (62ba0631) Text, 14.54 KB

Reticulum MeshChatX


Liam Cottle 氏による Reticulum MeshChat を大幅に改修・機能拡張したフォークです。

本プロジェクトはオリジナルの Reticulum MeshChat とは独立しており、提携関係にありません。

• ウェブサイト: meshchatx.com
• ソースコード: git.quad4.io/RNS-Things/MeshChatX
• 公式ミラー: github.com/Quad4/MeshChatX — 現時点では Windows / macOS ビルドにも使用。
• 変更履歴: CHANGELOG.md
• TODO: Boards

Reticulum MeshChat からの主な変更

• LXST を使用
• Peewee ORM を生 SQL に置き換え
• Axios をネイティブ T383838fetch に置き換え
• 最新の Electron
• Web サーバーと同梱フロントエンドを含む T383838.whl によりデプロイの選択肢を拡張
• i18n
• 依存関係管理に PNPM と Poetry

│ [!WARNING] MeshChatX は旧バージョンの Reticulum MeshChat
│ とのデータ互換性を保証しません。マイグレーションやテスト前にデータをバックアップしてください。

│ [!WARNING] レガシーシステムはまだ完全にはサポートされていません。現在の最低要件: Python
│ T383838>=3.11、Node T383838>=22(Electron は Node 22、CI はそれ以上でも可)。

必要条件

• Python T383838>=3.11(T383838pyproject.toml より)
• Node.js T383838>=22(T383838package.json より)
• pnpm T38383810.32.1(T383838package.json より)
• Poetry(T383838Taskfile.yml および CI ワークフローで使用)

T282828
task install
task lint:all
task test:all
task build:all

インストール方法

環境とパッケージ形式に合わせて選んでください。

┌──────────────────────────┬────────────────────┬───────────────────────────────────────┬──────────┐
│ 方法 │ フロントエンド含む │ アーキテクチャ │ 最適な… │
├──────────────────────────┼────────────────────┼───────────────────────────────────────┼──────────┤
│ Docker イメージ │ はい │ T383838linux/amd64, T383838linux/arm64 │ Linux … │
│ Python wheel (T383838.whl) │ はい │ Python がサポートする全アーキテクチャ │ Node ビ… │
│ Linux AppImage │ はい │ T383838x64, T383838arm64 │ ポータ… │
│ Debian パッケージ (T383838.deb) │ はい │ T383838x64, T383838arm64 │ Debian/… │
│ RPM パッケージ (T383838.rpm) │ はい │ CI 依存 │ Fedora/… │
│ ソースから │ ローカルビルド │ ホストアーキテクチャ │ 開発・… │
└──────────────────────────┴────────────────────┴───────────────────────────────────────┴──────────┘

備考:

• リリースワークフローは Linux T383838x64 および T383838arm64 の AppImage + DEB を明示的にビルドします。
• RPM も試行され、成功時にアップロードされます。

クイックスタート: Docker

T282828
docker compose up -d

デフォルトの compose ファイル:

• ホスト T383838127.0.0.1:8000 -> コンテナポート T3838388000
• T383838./meshchat-config -> T383838/config(永続化)

権限エラーが発生した場合:

T282828
sudo chown -R T79c0ff1000:1000 ./meshchat-config


リリースアーティファクトからのインストール

1) Linux AppImage (x64/arm64)

1. リリースから T383838ReticulumMeshChatX-v<バージョン>-linux-<アーキテクチャ>.AppImage をダウンロード。
2. 実行権限を付与して起動:

T282828
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage

2) Debian/Ubuntu T383838.deb (x64/arm64)

1. T383838ReticulumMeshChatX-v<バージョン>-linux-<アーキテクチャ>.deb をダウンロード。
2. インストール:

T282828
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb

3) RPM ベースのシステム

1. リリースに T383838ReticulumMeshChatX-v<バージョン>-linux-<アーキテクチャ>.rpm がある場合はダウンロード。
2. インストール:

T282828
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm

4) Python wheel (T383838.whl)

リリースの wheel にはビルド済みの Web アセットが含まれます。

T282828
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless

T383838pipx もサポート:

T282828
pipx install ./reticulum_meshchatx-*-py3-none-any.whl

ソースからの実行(Web サーバーモード)

開発時やローカルのカスタムビルド向け。

T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1


サンドボックスで実行(Linux)

ネイティブの T383838meshchatx(エイリアス: T383838meshchat)をファイルシステムをより隔離した状態で動かすには、Reticulum と Web UI 向けの通常のネットワークアクセスを保ちつつ Firejail または Bubblewrap(T383838bwrap)を使えます。詳しい例(pip/pipx、Poetry、USB シリアルの注意)は次を参照:


同梱または同期された T383838meshchatx-docs から配信される場合、アプリ内の ドキュメント(MeshChatX ドキュメント)一覧にも同じページが表示されます。

Linux デスクトップ: 絵文字フォント

絵文字ピッカーはシステムフォント(Electron/Chromium)で標準 Unicode 絵文字を描画します。絵文字が空の四角(「豆腐」)になる場合はカラー絵文字パッケージをインストールし、アプリを再起動してください。

┌──────────────────────────────┬───────────────────────────────────────────────────────────────────┐
│ ディストリビューション(例) │ パッケージ │
├──────────────────────────────┼───────────────────────────────────────────────────────────────────┤
│ Arch Linux, Artix, Manjaro │ T383838noto-fonts-emoji(T383838sudo pacman -S noto-fonts-emoji) │
│ Debian, Ubuntu │ T383838fonts-noto-color-emoji(T383838sudo apt install fonts-noto-color-emoji) │
│ Fedora │ T383838google-noto-emoji-color-fonts
└──────────────────────────────┴───────────────────────────────────────────────────────────────────┘

インストール後も表示されない場合は T383838fc-cache -fv を実行してください。最小インストールでは記号の網羅用に T383838noto-fonts も任意で入れてください。

ソースからのデスクトップパッケージビルド

スクリプトは T383838package.json と T383838Taskfile.yml に定義されています。

Linux x64 AppImage + DEB

T282828
pnpm run dist:linux-x64

Linux arm64 AppImage + DEB

T282828
pnpm run dist:linux-arm64

RPM

T282828
pnpm run dist:rpm

Task 経由:

T282828
task dist:fe:rpm

アーキテクチャサポート

• Docker イメージ: T383838amd64, T383838arm64
• Linux AppImage: T383838x64, T383838arm64
• Linux DEB: T383838x64, T383838arm64
• Windows: T383838x64, T383838arm64(ビルドスクリプトあり)
• macOS: ローカルビルド向けにビルドスクリプトあり(T383838arm64, T383838universal
• Android: ネイティブ APK — ABI T383838arm64-v8a、T383838x86_64、および universal

Android

MeshChatX はネイティブ Android APK のビルドに対応しています(Termux のみに限りません)。

ソースから APK をビルド

リポジトリのルートで:

T282828
T8b949e# 1) android/app/build.gradle で使う Chaquopy 用ホイールをビルド
bash scripts/build-android-wheels-local.sh

T8b949e# 2) 両方の APK バリアントをビルド
Tffa657cd android
./gradlew --no-daemon :app:assembleDebug :app:assembleRelease


APK の出力(ABI 分割と universal APK。T383838android/app/build.gradle の T383838splits { abi { ... } } を参照):

デバッグ(T383838android/app/build/outputs/apk/debug/):

• T383838app-arm64-v8a-debug.apk(ARM64 端末)
• T383838app-x86_64-debug.apk(x86_64 エミュレータ)
• T383838app-universal-debug.apk(同梱 ABI を 1 パッケージに)

リリース(T383838android/app/build/outputs/apk/release/):

• T383838app-arm64-v8a-release-unsigned.apk
• T383838app-x86_64-release-unsigned.apk
• T383838app-universal-release-unsigned.apk

備考:

• リリース出力は署名を設定しない限りデフォルトで未署名です。
• どちらか一方でよい場合は T383838:app:assembleDebug または T383838:app:assembleRelease
• Android の対象 ABI は T383838android/app/build.gradle で設定されている T383838arm64-v8a と T383838x86_64 です。

追加ドキュメント:


設定

┌────────────────────────┬──────────────────────────────────────┬────────────┬─────────────────────┐
│ 引数 │ 環境変数 │ デフォルト │ 説明 │
├────────────────────────┼──────────────────────────────────────┼────────────┼─────────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Web サーバーのバイ… │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Web サーバーポート │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ HTTPS を無効化 │
│ T383838--ssl-cert / T383838--ssl-key │ T383838MESHCHAT_SSL_CERT / T383838MESHCHAT_SSL_KEY │ (なし) │ PEM 証明書と鍵のパ… │
│ T383838--rns-log-level │ T383838MESHCHAT_RNS_LOG_LEVEL │ (なし) │ Reticulum(RNS)の… │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ ブラウザを自動で開… │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ 基本認証を有効化 │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ データディレクトリ │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ 自動/同梱 │ フロントエンドファ… │
└────────────────────────┴──────────────────────────────────────┴────────────┴─────────────────────┘

ブランチ

┌──────────┬────────────────────────────────────────────────────────────┐
│ ブランチ │ 目的 │
├──────────┼────────────────────────────────────────────────────────────┤
│ T383838master │ 安定版リリース。本番向けのコードのみ。 │
│ T383838dev │ 活発な開発。不安定または不完全な変更を含む場合があります。 │
└──────────┴────────────────────────────────────────────────────────────┘

開発

T383838Taskfile.yml のよく使うタスク:

T282828
task install
task lint:all
task test:all
task build:all

T383838Makefile のショートカット:

┌──────────────┬─────────────────────────────────────────┐
│ コマンド │ 説明 │
├──────────────┼─────────────────────────────────────────┤
│ T383838make install │ pnpm と poetry の依存関係をインストール │
│ T383838make run │ poetry 経由で MeshChatX を実行 │
│ T383838make build │ フロントエンドをビルド │
│ T383838make lint │ eslint と ruff を実行 │
│ T383838make test │ フロントエンドとバックエンドのテスト │
│ T383838make clean │ ビルド成果物と node_modules を削除 │
└──────────────┴─────────────────────────────────────────┘

バージョン管理

このリポジトリの現在のバージョンは T3838384.5.0 です。

• JavaScript / Electron のバージョンソースは T383838package.json
• T383838meshchatx/src/version.py は次で T383838package.json と同期します:

T282828
pnpm run version:sync

リリースの一貫性のため、必要に応じて (T383838package.json、T383838pyproject.toml、T383838meshchatx/__init__.py) のバージョンを揃えてください。

セキュリティ

• アプリ実行時の組み込み整合性チェックとデフォルトの HTTPS/WSS
• T383838.gitea/workflows/ の CI スキャンワークフロー

言語の追加

ロケールは自動検出されます。新しい言語には JSON ファイル 1 つで足ります:

1. T383838en.json から空のテンプレートを生成:

T282828
python scripts/generate_locale_template.py

全キーを空文字にした T383838locales.json が書き出されます。

2. 名前を変更してロケールディレクトリへ移動:

T282828
mv locales.json meshchatx/src/frontend/locales/xx.json

3. ファイル先頭の T383838_languageName にその言語の母語名を設定(例: T383838"Espanol", T383838"Francais")。言語選択に表示されます。

4. 残りの値をすべて翻訳。

5. キーの整合性を確認: T383838pnpm test -- tests/frontend/i18n.test.js --run

他のコード変更は不要です。アプリ・言語選択・テストはビルド時に T383838meshchatx/src/frontend/locales/ からロケールを読み込みます。

クレジット

Liam Cottle - オリジナル Reticulum MeshChat
RFnexus - Micron パーサー(JavaScript)
markqvist - Reticulum, LXMF, LXST

ライセンス

プロジェクト独自の部分は 0BSD です。
MeshChat 由来の元の上流部分は MIT のままです。
全文と通知は ../LICENSE を参照してください。


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────